import UIKit

/**
    B站：https://www.bilibili.com/video/BV144411C7Gg?p=24

    第24课 属性观察
        1. willSet
        2. didSet
 
 
    oc: 观察者模式
    Vue: watch
 */


struct Person {
    var name: String = "unkonw"
    {
        willSet(newValue) { // 执行级别 1   (1>2)
            print("willSet newValue==" + newValue + " __ " + name)
        }
        didSet(oldValue) { // 执行级别 2   (1>2)
            print("didSet oldValue==" + oldValue + " __ " + name)
        }
    }
}


var p = Person()
// 触发 wiiSet和didSet
p.name = "srxboys"

 print("\n")
p.name = "hello"

 print("\n")
p.name = "hello"

 print("\n")

// 不会 触发 wiiSet和didSet
print(p.name)
